#仿射变换的核心就是变换矩阵

import cv2
import numpy as np

img = cv2.imread('C:\\Users\\Mengyang\\Desktop\\112.png')
h, w, ch = img.shape   #获取图片的信息   高y  宽x  通道数
#M = np.float32([[1,0,100],[0,1,0]])  #创建一个2*2的单位矩阵，增加一个偏移量,向右横移100，创建变换矩阵

#通过API创建变换矩阵
#旋转的角度为逆时针，中心点是（x,y）
#M = cv2.getRotationMatrix2D((100,100),15,1.0)   #中心点  旋转角度  缩放比例1.0

#M = cv2.getRotationMatrix2D((w/2,h/2),15,0.5)  # 中心旋转

src = np.float32([[10,20],[100,100],[200,300]])  #选择3个点，注意这三个点一定要在原图上
dst = np.float32([[60,20],[150,100],[250,300]])  #目标点，横坐标右移50

#获取变换矩阵方法2
M = cv2.getAffineTransform(src, dst)

#如果想要改变新图像的尺寸，需要修改dsize
#new = cv2.warpAffine(img,M,(int(w/2),int(h/2)))

new = cv2.warpAffine(img,M,(w,h))

cv2.imshow('img',img)
cv2.imshow('new',new)

cv2.waitKey(0)